//
//  main.m
//  04-Homework
//
//  Created by Snow on 16/7/7.
//  Copyright © 2016年 Snow. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Color.h"
int main(int argc, const char * argv[]) {
    /* 需要的处理文件的下载地址 处理⽂件crayons.txt中的⽂本信息，⽂本内容是关于颜⾊的，每⾏都是⼀ 个颜⾊的信息，例如：Almond #EED9C4，前⼀个字符串是颜⾊的名称，后⼀ 个字符串是颜⾊的16进制⾊值，处理⽂本完成如下需/Users/Snow/Downloads/Homework-04/crayons.txt求:
     
     使⽤字典管理所有的颜⾊，即字典中存储的是多个键值对，颜⾊名称为 key，16进制颜⾊值（不带#）是value。
     使⽤⼀个新的字典管理颜⾊，对颜⾊进⾏分类管理，即：“A”，“B”，“C”… 即这个字典包含多个键值对，key是26个字⺟，value是数组，数组⾥存放的是 Color对象（包含name和colorValue）。需要⾃⼰创建Color类。
     获取文件中字符串的方法如下:
     
     NSString *path = [[NSBundle mainBundle] pathForResource:@"crayons" ofType:@"txt"];
     NSString *sourceStr = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
     根据得到的sourceStr进行处理
     */
    
    //使用字典管理所有颜色
    NSMutableDictionary *colorManager = [NSMutableDictionary dictionary];
    NSString *path = @"/Users/Snow/DLS160710/Objective-C/HomeWork/04-Homework/04-Homework/crayons.txt";
    NSString *sourceStr = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
    NSArray *array = [sourceStr componentsSeparatedByString:@"\n"];
    for (NSString *string in array) {
        NSArray *arr = [string componentsSeparatedByString:@"#"];
        [colorManager setObject:[arr lastObject] forKey:[arr firstObject]];
    }
    NSLog(@"%@", colorManager);
    
    //新字典管理颜色
    NSMutableDictionary *newColorManager = [NSMutableDictionary dictionary];
    for (NSString *string in array) {
        NSArray *arr = [string componentsSeparatedByString:@"#"];
        Color *color = [Color colorWithName:[arr firstObject] colorValue:[arr lastObject]];
        if (color.name.length >0) {
            NSString *first1 = [color.name substringWithRange:NSMakeRange(1, 1)];
            NSString *first = [first1 uppercaseString];
            NSMutableArray *arrOfKey = [newColorManager objectForKey:first];
            if (arrOfKey == nil) {
                arrOfKey = [NSMutableArray array];
                [arrOfKey addObject:color];
                [newColorManager setObject:arrOfKey forKey:first];
            } else {
                [arrOfKey addObject:color];
            }
        }
    }
    NSLog(@"%ld", newColorManager.count);
    NSLog(@"new:%@", newColorManager);
    return 0;
}
